package com.shioirikukuri.common.web;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.io.Serializable;

/**
 * 代码消息封装类。
 *
 * 该类用于定义和存储错误或状态代码及其对应的描述信息。
 * 它可以用来在应用程序的不同部分之间传递一致的状态码和消息，
 * 以便于统一处理和展示给用户。
 */
@Setter
@Getter
@NoArgsConstructor // Lombok 注解，自动生成无参构造函数
@AllArgsConstructor // Lombok 注解，自动生成全参构造函数
public class CodeMsg implements Serializable {

	/**
	 * 序列化版本UID，保证序列化的一致性。
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 状态码，表示操作的结果或发生的错误类型。
	 * 比如200代表成功，500可能代表服务器内部错误等。
	 */
	private Integer code;

	/**
	 * 消息，是对状态码的文字描述，可以是成功的提示或者是错误的详情。
	 */
	private String msg;

	/**
	 * 默认的无参构造函数，由Lombok通过@NoArgsConstructor注解生成。
	 */

	/**
	 * 全参构造函数，允许直接初始化code和msg字段，由Lombok通过@AllArgsConstructor注解生成。
	 */

	/**
	 * 注意：虽然此对象实现了Serializable接口，但实际使用时应该谨慎考虑是否需要序列化此类实例，
	 * 因为状态码和消息通常应该是瞬时的、上下文相关的数据，不应该被持久化。
	 */
}
